package com.power.sifa.correction.service;

import com.plf.common.domain.PageDataResponse;
import com.power.sifa.correction.model.pojo.vo.RecordVo;
import org.springframework.data.domain.Page;
import com.power.sifa.correction.model.Cre_work;
import com.power.sifa.correction.model.pageInfo.Cre_workPageInfo;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 预警处置任务业务层
 */
public interface Cre_workService {

    /**
     * 根据id获取预警处置任务对象
     */
    Cre_work getById(Serializable id);

    /**
     * 根据传入预警处置任务对象进行新增或更新操作
     */
    void saveOrUpdate(Cre_work cre_work);

    /**
     * 根据id删除预警处置任务
     */
    void removeById(Serializable id);

    /**
     * 根据传入条件查询预警处置任务分页结果
     */
    Page<Cre_work> findAll(Cre_workPageInfo pageInfo);

    /**
     * 查询全部预警处置任务
     */
    List<Cre_work> findAll();

    /**
     * 根据id批量删除预警处置任务
     */
    void removeByIds(List<Integer> list);

    /**
     * 批量保存预警处置任务
     */
    void saveAll(List<Cre_work> list);

    /**
     * 查询预警处置任务关联查询预警信息数据
     *
     * @param pageInfo
     * @return
     */
    PageDataResponse queryList(Cre_workPageInfo pageInfo);

    /**
     * 更新预警处置任务状态
     *
     * @param workid
     * @param warnid
     * @param worktype
     */
    void updateWorktype(String workid, String warnid, Integer worktype);

    /**
     * 更新预警处置状态
     *
     * @param id
     * @param status
     */
    void updateStatus(String id, Integer status);

    /**
     * 更新预警处置状态和办结时间
     *
     * @param id
     * @param status
     */
    void updateStatus(String id, Integer status, Date exectime);

    /**
     * 更新预警任务督办id
     *
     * @param id
     * @param supid
     */
    void setSupid(String id, String supid);

    /**
     * 再办任务保存
     */
    void repeatSave(Cre_work work);

    /**
     * 预警处置情况
     *
     * @return
     */
    Map<String, Integer> getDisposalStatus(List f_deptid);

    /**
     * 查看处置流程
     *
     * @param warnId
     * @return
     */
    List<RecordVo> findProcess(String warnId);

}
